$(function() {
	reloadTree($('#system_code').val());
	$("body").bind("mousedown", function(event){
		if (!(event.target.id == "menuBtn" || event.target.id == "DropdownMenuBackground" || $(event.target).parents("#DropdownMenuBackground").length>0)) {
			hideMenu();
		}
	});
	
	var edit_flag=$("#edit_flag").val();
	//菜单编码输入框失去焦点时调用
	$('#menuitem_code').blur(function(){
		if(validateForm('menuitem_code')) {
			var menuitem_id=$("#menuitem_id").val();
			var menuitem_code=$("#menuitem_code").val();
			var menu_id=$("#menu_id").val();
			if(menuitem_code) {
				checkMenuItemCode(menuitem_id, menuitem_code, menu_id, edit_flag);
			}
		}
	});
	
	$('#menuitem_name').blur(function() {
		validateForm('menuitem_name');
	});
	
	$('#menu_name').blur(function() {
		validateForm('menu_id');
	});
	
	$('#menuitem_url').blur(function() {
		validateForm('menuitem_url');
	});
	
	$('#menuitem_seq').blur(function() {
		validateForm('menuitem_seq');
	});
	
	//提交表单
	$('#saveMenuItemButt').click(function() {
		if(validateForm()) {
			$('#menuitemForm').submit();
		}
	});
});

function validateForm(id) {
	var result=false;
	// 验证菜单项编码
	if(!id || id=='menuitem_code') {
		var value=$('#menuitem_code').val();
		if(!value) {
			$('#menuitem_code_msg').html('菜单项编码不允许为空');
			result=false;
		}else if(value.maxLength(32)) {
			$('#menuitem_code_msg').html('菜单项编码长度不允许超过32个字符（一个汉字3个字符）');
			result=false;
		}else if(!regex_code_char.test(value)) {
			$('#department_code_msg').html('菜单项编码由数字、下划线以及英文字母组成');
			result = false;
		}else{
			$('#menuitem_code_msg').html('');
		}
	}
	
	// 验证菜单项名称
	if(!id || id=='menuitem_name') {
		var value=$('#menuitem_name').val();
		if(!value) {
			$('#menuitem_name_msg').html('菜单项名称不允许为空');
			result = false;
		}else if(value.maxLength(32)) {
			$('#menuitem_name_msg').html('菜单项名称长度不允许超过32个字符（一个汉字3个字符）');
			result = false;
		}else if(!regex_special_char.test(value)) {
			$('#menuitem_name_msg').html('菜单项名称不允许包含特殊字符：*.&/\\\'\"|,<>');
			result = false;
		}else{
			$('#menuitem_name_msg').html('');
		}
	}
	
	// 验证上级菜单
	if(!id || id=='menu_id') {
		var value=$('#menu_id').val();
		if(!value) {
			$('#menu_id_msg').html('上级菜单不允许为空');
			result = false;
		}else{
			$('#menu_id_msg').html('');
		}
	}
	
	// 验证菜单项地址
	if(!id || id=='menuitem_url') {
		var value=$('#menuitem_url').val();
		if(value&&value.maxLength(1024)) {
			$('#menuitem_url_msg').html('菜单项地址长度不允许超过1024个字符');
			result = false;
		}else{
			$('#menuitem_url_msg').html('');
		}
	}
	
	// 验证菜单序号
	if(!id || id=='menuitem_seq') {
		var value=$('#menuitem_seq').val();
		if(!value) {
			$('#menuitem_seq_msg').html('菜单项序号不允许为空');
			result = false;
		}else if(value.maxLength(3)) {
			$('#menuitem_seq_msg').html('菜单项序号长度不允许超过3个字符');
			result = false;
		}else if(!regex_number.test(value)) {
			$('#menuitem_seq_msg').html('菜单项序号输入不合法：必须为数值型');
			result = false;
		}else{
			$('#menuitem_seq_msg').html('');
		}
	}
	return result;
}

//校验菜单项编码是否重复
function checkMenuItemCode(menuitem_id, menuitem_code, menu_id, edit_flag) {
	$.ajax({   
		url: 'checkMenuItem.action',   
		type:'POST',   
		dataType: 'json',
		data:"menuitem.menuitem_id="+menuitem_id+"&menuitem.menuitem_code="+menuitem_code+"&menuitem.menu_id="+menu_id+"&edit="+edit_flag,   
		beforeSend:function(xmlhttprequest){
		},
		success:function(data){
			var isExists = data.isExists;
			if(isExists == true || isExists=='true') {
				$('#menuitem_code_msg').html("菜单项编码已存在，请重新输入！");
				$('#menuitem_code').focus();
			}
			else {
				$('#menuitem_code_msg').html("");
			}
		},
		error:function(){
			
		}
	});
}

/**
 * 加载菜单列表树时所必须使用的方法
 * @param event
 * @param treeId
 * @param treeNode
 */
function zTreeOnClick(event, treeId, treeNode) {
	if (treeNode) {
		$("#menu_id").attr("value", treeNode.menu_id);
		$("#menu_name").attr("value", treeNode.menu_name);
		hideMenu();
	}
}
